import sqlite3

class SQLM:
    def __init__(self, base):
        self.base = base

    def connect(self):
        self.connect = sqlite3.connect(self.base)
        self.cursor = self.connect.cursor()

    def create_table(self):
        self.cursor.execute("CREATE TABLE IF NOT EXISTS USERS (ID INT PRIMARY KEY, NAME TEXT, PASSWORD TEXT);")

    def add_user(self, name, password):
        id = max(self.cursor.execute("SELECT ID FROM USERS"))[0] + 1

        self.cursor.execute("INSERT INTO USERS (ID, NAME, PASSWORD) VALUES ({0}, '{1}', '{2}');".format(id, name, password))

        self.connect.commit()
        print("\nПользователь {0} успешно добавлен\n".format(name))        

    def delete_user(self, name):
        self.cursor.execute("SELECT NAME FROM USERS;")
        users = self.cursor.fetchall()
        users_list = []
        for i in users:
            users_list.append(i[0])

        if name in users_list:

            self.cursor.execute("DELETE FROM USERS WHERE (NAME = '{0}');".format(name))

            self.connect.commit()
            print("Пользователь {0} успешно удален\n".format(name))
            
        else:
            print("Пользователя {0} нет в базе\n".format(name))        

    def show_table(self):
        self.cursor.execute("SELECT * FROM USERS")
        print("\n{0}\n".format(self.cursor.fetchall()))        

    def close_connection(self):
        self.cursor.close()
        self.connect.close()

def main():

    base = SQLM('db1.db')
    base.connect()

    while True:

        ch = int(input("Добавить - 1\nУдалить - 2\nПосмотреть базу - 3\nВыйти - 4\n: "))

        if ch == 1:
            name = input("Имя: ")
            password = input("Пароль: ")
            base.add_user(name, password)

        elif ch == 2:
            name = input("\nВведите имя пользователя для удаления: ")
            base.delete_user(name)

        elif ch == 3:
            base.show_table()

        elif ch == 4:
            break

        else:
            print("Неправильный ввод\n")

    base.close_connection()

if __name__ == "__main__":
    main()